package io.github.iogogogo.hippo.domain;

import com.alibaba.fastjson.annotation.JSONField;

import java.util.List;

/**
 * Created by tao.zeng on 2021/11/9.
 */
public class HippoConf {

    @JSONField(name = "jdbc.url")
    private String jdbcUrl;

    @JSONField(name = "jdbc.username")
    private String username;

    @JSONField(name = "jdbc.password")
    private String password;

    @JSONField(name = "jdbc.driver")
    private String driver;

    @JSONField(name = "output")
    private Output output;

    @JSONField(name = "db.config")
    private DBConfig dbConfig;

    private Hippo hippo;

    public static class Output {

        private List<String> type;

        private String path;

        private String name;

        public List<String> getType() {
            return type;
        }

        public void setType(List<String> type) {
            this.type = type;
        }

        public String getPath() {
            return path;
        }

        public void setPath(String path) {
            this.path = path;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }

    public static class DBConfig {

        @JSONField(name = "ignore.table")
        private List<String> ignoreTable;

        @JSONField(name = "ignore.table.prefix")
        private List<String> ignorePrefix;

        @JSONField(name = "ignore.table.suffix")
        private List<String> ignoreSuffix;

        public List<String> getIgnoreTable() {
            return ignoreTable;
        }

        public void setIgnoreTable(List<String> ignoreTable) {
            this.ignoreTable = ignoreTable;
        }

        public List<String> getIgnorePrefix() {
            return ignorePrefix;
        }

        public void setIgnorePrefix(List<String> ignorePrefix) {
            this.ignorePrefix = ignorePrefix;
        }

        public List<String> getIgnoreSuffix() {
            return ignoreSuffix;
        }

        public void setIgnoreSuffix(List<String> ignoreSuffix) {
            this.ignoreSuffix = ignoreSuffix;
        }
    }

    public static class Hippo {

        private String version;

        private String description;

        public String getVersion() {
            return version;
        }

        public void setVersion(String version) {
            this.version = version;
        }

        public String getDescription() {
            return description;
        }

        public void setDescription(String description) {
            this.description = description;
        }
    }

    public String getJdbcUrl() {
        return jdbcUrl;
    }

    public void setJdbcUrl(String jdbcUrl) {
        this.jdbcUrl = jdbcUrl;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getDriver() {
        return driver;
    }

    public void setDriver(String driver) {
        this.driver = driver;
    }

    public Output getOutput() {
        return output;
    }

    public void setOutput(Output output) {
        this.output = output;
    }

    public DBConfig getDbConfig() {
        return dbConfig;
    }

    public void setDbConfig(DBConfig dbConfig) {
        this.dbConfig = dbConfig;
    }

    public Hippo getHippo() {
        return hippo;
    }

    public void setHippo(Hippo hippo) {
        this.hippo = hippo;
    }
}
